tmp_stats = df.groupby(['loyalty', 'basket_id']).agg(total_revenue=('price', sum)).reset_index() tmp_stats.groupby('loyalty').agg( avg_basket_amount=('total_revenue', 'mean'), mdn_basket_amount=('total_revenue', 'median'), total_basket_amount=('total_revenue', 'sum'), num_baskets=('loyalty', 'count') )

how much is spent on meat every year

meat = df[df.commodity.str.lower().str.contains('meat|beef|chicken|seafood|pork')].copy() meat.transaction_date = pd.to_datetime(meat.transaction_date, format='%Y-%m-%d') meat['year'] = meat.transaction_date.dt.year meat['month'] = meat.transaction_date.dt.month meat.groupby(['year', 'month']).agg(total_revenue=('price', sum)).plot(figsize=(12,5));